/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.ps.server;

import com.ps.server.classes.configurations;
import com.ps.server.classes.tax_rules;
import com.ps.server.classes.taxes;
import java.util.ArrayList;
import java.util.Hashtable;
import org.xml.sax.Attributes;
import org.xml.sax.SAXException;
import org.xml.sax.helpers.DefaultHandler;

/**
 *
 * @author Ricardo
 */
public class Tax_RulesLibraryXMLReader extends DefaultHandler {

    Hashtable nodos = new Hashtable();
    private tax_rules nodoActualTax_rules = new tax_rules();
    String resource;
    private String contenido;
    
    public Tax_RulesLibraryXMLReader(Hashtable nodos) {
        this.nodos = nodos;
    }

    public Tax_RulesLibraryXMLReader() {
    }
    /*
     * Esta funcion el llamada cuando se produce el evento de ver una nueva
     * etiqueta
     */

    @Override
    public void startElement(String uri, String localName, String qName, Attributes attributes) {

        if ("tax_rules".equals(qName)) {
            this.resource = qName;
            // nodoActualConfigurations = new taxes();
        }

        if ("tax_rule".equals(qName)) {
            nodoActualTax_rules = new tax_rules();
        }

    }
    /*
     * Esta funcion es llamada cuando ve el contenido de una etiqueta
     */

    @Override
    public void characters(char buf[], int offset, int len)
            throws SAXException {
        contenido = new String(buf, offset, len);

    }
    /*
     * y esta al llegar al final
     */

    @Override
    public void endElement(String uri, String localName, String qName) {
        if (this.resource.equals("tax_rules")) {
            resourceCategories(qName);
        }
    }

    void resourceCategories(String qName) {
        if ("id".equals(qName)) {
            // aqui se ya se sabe  el orden de  inicializacion de las variables.
            this.nodoActualTax_rules.setId(contenido);
        }

        if ("id_tax_rules_group".equals(qName)) {
            nodoActualTax_rules.setId_tax_rules_group(contenido);
        }
        if ("id_state".equals(qName)) {
            nodoActualTax_rules.setId_state(contenido);
        }
        if ("id_country".equals(qName)) {
            nodoActualTax_rules.setId_country(contenido);
        }

        if ("zipcode_from".equals(qName)) {
            nodoActualTax_rules.setZipcode_from(contenido);
        }

        if ("zipcode_to".equals(qName)) {
            nodoActualTax_rules.setZipcode_to(contenido);
        }

        if ("id_tax".equals(qName)) {
            nodoActualTax_rules.setId_tax(contenido);
        }
        if ("behavior".equals(qName)) {
            nodoActualTax_rules.setBehavior(contenido);
        }
        if ("description".equals(qName)) {
            nodoActualTax_rules.setDescription(contenido);
        }

        if ("tax_rule".equals(qName)) {

            if (!this.nodos.containsKey(this.nodoActualTax_rules.getId())) {
                this.nodos.put(this.nodoActualTax_rules.getId(), this.nodoActualTax_rules);
            }
        }



    }

    class langTemp {

        private String id;
        private String value;

        public void langTemp() {
        }

        public void langTemp(String id, String value) {
            this.setId(id);
            this.setValue(value);
        }

        public String getId() {
            return id;
        }

        public void setId(String id) {
            this.id = id;
        }

        public String getValue() {
            if (value == null) {
                value = "";
            }
            return value;
        }

        public void setValue(String value) {
            this.value = value;
        }
    }
}